Page({
  data: {
    idcardFrontUrl: '/static/images/avatar_1.jpg',
    idcardBackUrl: '/static/images/avatar_2.jpg',
    // 表单数据
    name: '',
    gender: 0,
    mobile: '',
    id: ''
  },

  goList () {
    wx.reLaunch({
      url: '/house_pkg/pages/list/index'
    })
  },

  removePicture (ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type
    this.setData({ [type]: '' })
  },

  onLoad ({ point, building, room, id }) {
    if (id) {
      // 发送请求
      this.setData({ id })
      this.getDetail()
      // 修改标题
      wx.setNavigationBarTitle({
        title: '修改房屋信息'
      })
    } else {
      this.setData({
        point,
        building,
        room
      })
    }
  },

  // 获取房屋详情
  async getDetail () {
    const res = await wx.$http.get(`/room/${this.data.id}`)
    if (res.code !== 10000) return wx.$utils.toast()
    this.setData({
      ...res.data
    })
  },

  // 选择图片
  async chooseImages (e) {
    const res = await wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sizeType: ['compressed']
    })
    // console.log(res.tempFiles[0].tempFilePath) // 上传到服务器
    wx.uploadFile({
      url: `${wx.$http.baseURL}/upload`,
      filePath: res.tempFiles[0].tempFilePath,
      name: 'file',
      header: {
        Authorization: getApp().token
      },
      success: res => {
        // console.log(res)
        const { data } = JSON.parse(res.data)
        // console.log(data.url)
        this.setData({
          [e.mark.dataType]: data.url
        })
      }
    })
  },

  // 校验
  verifyName () {
    const reg = /[\u4e00-\u9fa5]{2,5}/
    const valid = reg.test(this.data.name)
    if (!valid) wx.$utils.toast('请填写2-5位的中文')
    // console.log(valid)
    return valid
  },
  verifyMobile () {
    const reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/
    const valid = reg.test(this.data.mobile)
    if (!valid) wx.$utils.toast('请输入正确的手机号')
    return valid
  },
  verifyPic () {
    if (this.data.idcardBackUrl && this.data.idcardFrontUrl) {
      return true
    }
    wx.$utils.toast('请上传身份证照片')
    return false
  },

  // 提交
  async submit () {
    // 校验
    if (!this.verifyName()) return
    if (!this.verifyMobile()) return
    if (!this.verifyPic()) return
    // console.log(this.verifyPic())
    // 删除掉不要的数据
    delete this.data.__webviewId__
    delete this.data.status
    // 如果id为空,说明是添加,删除id;如果id有值,说明是修改,不做操作
    if (!this.data.id) {
      delete this.data.id
    }
    // 上传
    const res = await wx.$http.post('/room', this.data)
    if (res.code !== 10000) return wx.$utils.toast('添加房屋失败')
    wx.$utils.toast('添加房屋成功')
    // 跳转回房屋列表页面
    this.goList()
  }
})
